<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.18"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>HElib: /HElib/include/helib/EncryptedArray.h File Reference</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
		<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;1,700&family=Merriweather&family=Merriweather+Sans&family=Open+Sans&family=Poppins:ital@1&family=Roboto:ital,wght@0,400;1,300;1,900&display=swap" rel="stylesheet"> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body style="font-family: 'Merriweather', serif;">
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">HElib Implementing Homomorphic Encryption</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d0c4ae63660968bf6b1c77a1e8aecf95.html">helib</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">EncryptedArray.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Data-movement operations on encrypted arrays of slots.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;exception&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;complex&gt;</code><br />
<code>#include &lt;NTL/Lazy.h&gt;</code><br />
<code>#include &lt;NTL/pair.h&gt;</code><br />
<code>#include &lt;NTL/SmartPtr.h&gt;</code><br />
<code>#include &lt;<a class="el" href="_double_c_r_t_8h_source.html">helib/DoubleCRT.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_context_8h_source.html">helib/Context.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_ctxt_8h_source.html">helib/Ctxt.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="keys_8h_source.html">helib/keys.h</a>&gt;</code><br />
</div>
<p><a href="_encrypted_array_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html">helib::EncryptedArrayBase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual class for data-movement operations on arrays of slots  <a href="classhelib_1_1_encrypted_array_base.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_derived.html">helib::EncryptedArrayDerived&lt; type &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Derived concrete implementation of <a class="el" href="classhelib_1_1_encrypted_array_base.html" title="virtual class for data-movement operations on arrays of slots">EncryptedArrayBase</a>.  <a href="classhelib_1_1_encrypted_array_derived.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html">helib::EncryptedArrayCx</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A different derived class to be used for the approximate-numbers scheme.  <a href="classhelib_1_1_encrypted_array_cx.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array.html">helib::EncryptedArray</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A simple wrapper for a smart pointer to an <a class="el" href="classhelib_1_1_encrypted_array_base.html" title="virtual class for data-movement operations on arrays of slots">EncryptedArrayBase</a>. This is the interface that higher-level code should use.  <a href="classhelib_1_1_encrypted_array.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_plaintext_array_base.html">helib::PlaintextArrayBase</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_plaintext_array_derived.html">helib::PlaintextArrayDerived&lt; type &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_plaintext_array.html">helib::PlaintextArray</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacehelib"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html">helib</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a0643e00a065b8bfad80c0639f90178e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_encrypted_array_8h.html#a0643e00a065b8bfad80c0639f90178e5">HELIB_MORE_UNWRAPARGS</a>(n)&#160;&#160;&#160;NTL_SEPARATOR_##n NTL_REPEATER_##n(NTL_UNWRAPARG)</td></tr>
<tr class="separator:a0643e00a065b8bfad80c0639f90178e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2206773b8be2edfab7070fd85b35d92c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_encrypted_array_8h.html#a2206773b8be2edfab7070fd85b35d92c">PA_BOILER</a></td></tr>
<tr class="separator:a2206773b8be2edfab7070fd85b35d92c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9b76bfef96a97dcb98913fcac4b322f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_encrypted_array_8h.html#ae9b76bfef96a97dcb98913fcac4b322f">CPA_BOILER</a></td></tr>
<tr class="separator:ae9b76bfef96a97dcb98913fcac4b322f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a719cb433e43e9f4a88ada8b72d3b715d"><td class="memItemLeft" align="right" valign="top">typedef std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">helib::cx_double</a></td></tr>
<tr class="separator:a719cb433e43e9f4a88ada8b72d3b715d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aefd5d1a56f7036cae390706fe49e8fcb"><td class="memTemplParams" colspan="2">template&lt;typename RX , typename RXModulus &gt; </td></tr>
<tr class="memitem:aefd5d1a56f7036cae390706fe49e8fcb"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacehelib.html#aefd5d1a56f7036cae390706fe49e8fcb">helib::plaintextAutomorph</a> (RX &amp;bb, const RX &amp;a, long k, long m, const RXModulus &amp;PhimX)</td></tr>
<tr class="separator:aefd5d1a56f7036cae390706fe49e8fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f36286a4ff72a05ddf16c2e5bfaeba5"><td class="memTemplParams" colspan="2">template&lt;typename RX , typename type &gt; </td></tr>
<tr class="memitem:a9f36286a4ff72a05ddf16c2e5bfaeba5"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a9f36286a4ff72a05ddf16c2e5bfaeba5">helib::plaintextAutomorph</a> (RX &amp;b, const RX &amp;a, long i, long j, const EncryptedArrayDerived&lt; type &gt; &amp;ea)</td></tr>
<tr class="separator:a9f36286a4ff72a05ddf16c2e5bfaeba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf194ed39fc9a3694d1a11a0cd4c75d4"><td class="memItemLeft" align="right" valign="top">EncryptedArrayBase *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#acf194ed39fc9a3694d1a11a0cd4c75d4">helib::buildEncryptedArray</a> (const Context &amp;context, const PAlgebraMod &amp;alMod, const NTL::ZZX &amp;G=NTL::ZZX::zero())</td></tr>
<tr class="memdesc:acf194ed39fc9a3694d1a11a0cd4c75d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">A "factory" for building EncryptedArrays.  <a href="namespacehelib.html#acf194ed39fc9a3694d1a11a0cd4c75d4">More...</a><br /></td></tr>
<tr class="separator:acf194ed39fc9a3694d1a11a0cd4c75d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5cdfe4d2a5d750a2f2ae0f2d0addabc"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#ae5cdfe4d2a5d750a2f2ae0f2d0addabc">helib::operator&lt;&lt;</a> (std::ostream &amp;s, const PlaintextArray &amp;pa)</td></tr>
<tr class="separator:ae5cdfe4d2a5d750a2f2ae0f2d0addabc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34783d4707b52b8cb0341187d50f8265"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a34783d4707b52b8cb0341187d50f8265">helib::rotate</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, long k)</td></tr>
<tr class="separator:a34783d4707b52b8cb0341187d50f8265"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2250fb1a88c915ce004837c63aa5ad7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#ae2250fb1a88c915ce004837c63aa5ad7">helib::shift</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, long k)</td></tr>
<tr class="separator:ae2250fb1a88c915ce004837c63aa5ad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf08ccbcd03824fa3825640c1b171481"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#acf08ccbcd03824fa3825640c1b171481">helib::encode</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const std::vector&lt; long &gt; &amp;array)</td></tr>
<tr class="separator:acf08ccbcd03824fa3825640c1b171481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac40cf1967be4e2bf1b9a63564abe3485"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#ac40cf1967be4e2bf1b9a63564abe3485">helib::encode</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const std::vector&lt; NTL::ZZX &gt; &amp;array)</td></tr>
<tr class="separator:ac40cf1967be4e2bf1b9a63564abe3485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a517b7c650eafd6c9ac20ef4605a4d4a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a517b7c650eafd6c9ac20ef4605a4d4a1">helib::encode</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, long val)</td></tr>
<tr class="separator:a517b7c650eafd6c9ac20ef4605a4d4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab8cf8fcdf629a076db0d0206670a7c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#aab8cf8fcdf629a076db0d0206670a7c3">helib::encode</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const NTL::ZZX &amp;val)</td></tr>
<tr class="separator:aab8cf8fcdf629a076db0d0206670a7c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38c7c1b517a8ec41eacfc5c2dba6e293"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a38c7c1b517a8ec41eacfc5c2dba6e293">helib::random</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa)</td></tr>
<tr class="separator:a38c7c1b517a8ec41eacfc5c2dba6e293"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d7757fc124c051547f6d8d62f57e6ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a7d7757fc124c051547f6d8d62f57e6ee">helib::decode</a> (const EncryptedArray &amp;ea, std::vector&lt; long &gt; &amp;array, const PlaintextArray &amp;pa)</td></tr>
<tr class="separator:a7d7757fc124c051547f6d8d62f57e6ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37ce1cf83ebb14807ec5fd0ecebd03be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a37ce1cf83ebb14807ec5fd0ecebd03be">helib::decode</a> (const EncryptedArray &amp;ea, std::vector&lt; NTL::ZZX &gt; &amp;array, const PlaintextArray &amp;pa)</td></tr>
<tr class="separator:a37ce1cf83ebb14807ec5fd0ecebd03be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa271293d5f46187af89cc81ecb0235e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#aa271293d5f46187af89cc81ecb0235e9">helib::equals</a> (const EncryptedArray &amp;ea, const PlaintextArray &amp;pa, const PlaintextArray &amp;other)</td></tr>
<tr class="separator:aa271293d5f46187af89cc81ecb0235e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae140aabda8f5c9ace67b657134451df8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#ae140aabda8f5c9ace67b657134451df8">helib::equals</a> (const EncryptedArray &amp;ea, const PlaintextArray &amp;pa, const std::vector&lt; long &gt; &amp;other)</td></tr>
<tr class="separator:ae140aabda8f5c9ace67b657134451df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab2e1e9931564eca3665358957b06cd3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#aab2e1e9931564eca3665358957b06cd3">helib::equals</a> (const EncryptedArray &amp;ea, const PlaintextArray &amp;pa, const std::vector&lt; NTL::ZZX &gt; &amp;other)</td></tr>
<tr class="separator:aab2e1e9931564eca3665358957b06cd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42185bbb249368e34f515e09e90bc7b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a42185bbb249368e34f515e09e90bc7b0">helib::add</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const PlaintextArray &amp;other)</td></tr>
<tr class="separator:a42185bbb249368e34f515e09e90bc7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a305064dc4866c160a571bd653556c113"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a305064dc4866c160a571bd653556c113">helib::sub</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const PlaintextArray &amp;other)</td></tr>
<tr class="separator:a305064dc4866c160a571bd653556c113"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cfe07d1b0c2f0e6385f2b6525e0a69b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a0cfe07d1b0c2f0e6385f2b6525e0a69b">helib::mul</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const PlaintextArray &amp;other)</td></tr>
<tr class="separator:a0cfe07d1b0c2f0e6385f2b6525e0a69b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f6016d5e65b16abb1feba5a82067b14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a2f6016d5e65b16abb1feba5a82067b14">helib::negate</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa)</td></tr>
<tr class="separator:a2f6016d5e65b16abb1feba5a82067b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab08d6e1c47a1f0b8ed57aff211929548"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#ab08d6e1c47a1f0b8ed57aff211929548">helib::frobeniusAutomorph</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, long j)</td></tr>
<tr class="separator:ab08d6e1c47a1f0b8ed57aff211929548"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a291c0b1560a80e0cda02f89617fd16d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a291c0b1560a80e0cda02f89617fd16d5">helib::frobeniusAutomorph</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const NTL::Vec&lt; long &gt; &amp;vec)</td></tr>
<tr class="separator:a291c0b1560a80e0cda02f89617fd16d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf575ea763b7454a6e8df566a9e64b3c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#adf575ea763b7454a6e8df566a9e64b3c">helib::applyPerm</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, const NTL::Vec&lt; long &gt; &amp;pi)</td></tr>
<tr class="separator:adf575ea763b7454a6e8df566a9e64b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b1a8080de040baddd971b44488ca51"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a83b1a8080de040baddd971b44488ca51">helib::power</a> (const EncryptedArray &amp;ea, PlaintextArray &amp;pa, long e)</td></tr>
<tr class="separator:a83b1a8080de040baddd971b44488ca51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55aba5934157b9d7517101534a0053a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a55aba5934157b9d7517101534a0053a2">helib::runningSums</a> (const EncryptedArray &amp;ea, Ctxt &amp;ctxt)</td></tr>
<tr class="memdesc:a55aba5934157b9d7517101534a0053a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">A ctxt that encrypts <img class="formulaInl" alt="$(x_1, ..., x_n)$" src="form_0.png" width="56" height="14"/> is replaced by an encryption of <img class="formulaInl" alt="$(y_1, ..., y_n)$" src="form_1.png" width="55" height="14"/>, where <img class="formulaInl" alt="$y_i = sum_{j\le i} x_j$" src="form_2.png" width="80" height="10"/>.  <a href="namespacehelib.html#a55aba5934157b9d7517101534a0053a2">More...</a><br /></td></tr>
<tr class="separator:a55aba5934157b9d7517101534a0053a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Data-movement operations on encrypted arrays of slots. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ae9b76bfef96a97dcb98913fcac4b322f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9b76bfef96a97dcb98913fcac4b322f">&#9670;&nbsp;</a></span>CPA_BOILER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CPA_BOILER</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  <span class="keyword">const</span> PAlgebraModDerived&lt;type&gt;&amp; tab = ea.getTab();                           \</div>
<div class="line">  UNUSED <span class="keyword">const</span> RX&amp; G = ea.getG();                                              \</div>
<div class="line">  UNUSED <span class="keywordtype">long</span> n = ea.size();                                                   \</div>
<div class="line">  UNUSED <span class="keywordtype">long</span> d = ea.getDegree();                                              \</div>
<div class="line">  const std::vector&lt;RX&gt;&amp; data = pa.getData&lt;type&gt;();                            \</div>
<div class="line">  RBak bak;                                                                    \</div>
<div class="line">  bak.save();                                                                  \</div>
<div class="line">  tab.restoreContext();</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0643e00a065b8bfad80c0639f90178e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0643e00a065b8bfad80c0639f90178e5">&#9670;&nbsp;</a></span>HELIB_MORE_UNWRAPARGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HELIB_MORE_UNWRAPARGS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">n</td><td>)</td>
          <td>&#160;&#160;&#160;NTL_SEPARATOR_##n NTL_REPEATER_##n(NTL_UNWRAPARG)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a2206773b8be2edfab7070fd85b35d92c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2206773b8be2edfab7070fd85b35d92c">&#9670;&nbsp;</a></span>PA_BOILER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_BOILER</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  <span class="keyword">const</span> PAlgebraModDerived&lt;type&gt;&amp; tab = ea.getTab();                           \</div>
<div class="line">  UNUSED <span class="keyword">const</span> RX&amp; G = ea.getG();                                              \</div>
<div class="line">  UNUSED <span class="keywordtype">long</span> n = ea.size();                                                   \</div>
<div class="line">  UNUSED <span class="keywordtype">long</span> d = ea.getDegree();                                              \</div>
<div class="line">  std::vector&lt;RX&gt;&amp; data = pa.getData&lt;type&gt;();                                  \</div>
<div class="line">  RBak bak;                                                                    \</div>
<div class="line">  bak.save();                                                                  \</div>
<div class="line">  tab.restoreContext();</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
        <script type="text/javascript" src="doxy-boot.js"></script>
</html>
